package com.jz.service.impl;

import com.jz.dao.CourseDao;
import com.jz.dao.CourseDetailDao;
import com.jz.dao.impl.CourseDaoImpl;
import com.jz.dao.impl.CourseDetailDaoImpl;
import com.jz.entity.Course;
import com.jz.entity.CourseDetail;
import com.jz.entity.PageBean;
import com.jz.service.CourseService;
import com.jz.utils.RemoveFileUtils;

import java.util.ArrayList;
import java.util.List;

public class CourseServiceImpl implements CourseService {
    //对课程的操作
    CourseDao cd = new CourseDaoImpl();
    //对课程章节的操作
    CourseDetailDao cds = new CourseDetailDaoImpl();

    @Override
    public boolean addCourse(Course c) {
        return cd.addCourse(c) > 0 ? true : false;
    }

    //分页模糊查询,返回一个PageBean实体类
    @Override

    public PageBean<Course> queryCourse(String courseName, String curPage, String pageSize) {
        Integer cp = Integer.valueOf(curPage);
        Integer ps = Integer.valueOf(pageSize);
        List<Course> list = cd.queryCourse(courseName, cp, ps);
        System.out.println("分页查询的集合" + list);
        PageBean<Course> pb = new PageBean<Course>(cp, ps, queryCourseCount(courseName), list);

        return pb;
    }

    //查询总个数 total
    @Override
    public int queryCourseCount(String courseName) {
        return cd.queryCourseCount(courseName);
    }

    @Override
    public boolean deleCourse(String cids) {
        //定义集合王集合里面添加视频跟图片名称
        List<String> list = new ArrayList<String>();
        //根据cids查询课程
        List<Course> cdlist = cd.queryCourse(cids);
        List<CourseDetail> cdslist = cds.queryCourseDetailById(cids);
        int n = 0;
        if (cdlist.size() > 0) {
            //先删除课程详情的课程信息
            n = cds.delCourseDetail(cids);
            if (n > 0) {
                //在删除课程信息
                n = cd.delete(cids);
            }
            if (n > 0) {
                //删除文件
                //1.获取课程及课程详情的文件名
                for (Course c : cdlist) {
                    //将课程的图片名和视频名添加到list中
                    list.add(c.getCourseImage());
                    list.add(c.getCourseVideo());
                }
                //2.获取课程详情的文件名
                for (CourseDetail cd : cdslist) {
                    list.add(cd.getUrl());
                }
            }
        } else {
            //直接删除课程信息
            n = cd.delete(cids);
            //并删除课程的文件就可以了
            if (n > 0) {
                //删除文件
                //1.获取课程及课程详情的文件名
                for (Course c : cdlist) {
                    //将课程的图片名和视频名添加到list中
                    list.add(c.getCourseImage());
                    list.add(c.getCourseVideo());
                }

            }
            //删除文件
            RemoveFileUtils.removeFile(list, "f:/img");
        }
        return n > 0 ? true : false;
    }








}
